package toolx

import (
	"os"
	"path"
)

func CreateFile(fn string) (*os.File, error) {
	if _, err := os.Stat(fn); err != nil {
		basePath := path.Dir(fn)
		if _, err = os.Stat(basePath); err != nil {
			if err = os.MkdirAll(basePath, 0777); err != nil {
				return nil, err
			}
		}
		return os.Create(fn)
	} else {
		return os.OpenFile(fn, os.O_APPEND|os.O_WRONLY, 0777)
	}
}

func CreateDir(fn string) error {
	basePath := path.Dir(fn)
	if _, err := os.Stat(basePath); err != nil {
		return os.MkdirAll(basePath, 0777)
	}
	return nil
}
